package config

import (
	"gitee.com/gousing/values"
)

// GetBool 获取 Bool 配置项, 配置项不存在或类型转换失败时返回零值
func GetBool(key string) bool {
	return GetBoolD(key, false)
}

// GetBoolD 获取 Bool 配置项, 配置项不存在或类型转换失败时返回指定的默认值
func GetBoolD(key string, defaultVal bool) bool {
	if v, ok := GetExist(key); !ok {
		return defaultVal
	} else {
		return values.ToBoolD(v, defaultVal)
	}
}

// GetBoolE 获取 Bool 配置项, 配置项不存在或类型转换失败时返回零值及错误信息
func GetBoolE(key string) (bool, error) {
	if v, ok := GetExist(key); !ok {
		return false, ErrKeyNotExist
	} else {
		return values.ToBoolE(v)
	}
}
